687 research outputs found
Terrier: an embedded operating system using advanced types for safety
Operating systems software is fundamental to modern computer
systems: all other applications are dependent upon the correct and
timely provision of basic system services. At the same time,
advances in programming languages and type theory have lead to the
creation of functional programming languages with type systems that
are designed to combine theorem proving with practical systems
programming. The Terrier operating system project focuses on
low-level systems programming in the context of a multi-core,
real-time, embedded system, while taking advantage of a dependently
typed programming language named ATS to improve
reliability. Terrier is a new point in the design space for an
operating system, one that leans heavily on an associated
programming language, ATS, to provide safety that has traditionally
been in the scope of hardware protection and kernel
privilege. Terrier tries to have far fewer abstractions between
program and hardware. The purpose of Terrier is to put programs as
much in contact with the real hardware, real memory, and real timing
constraints as possible, while still retaining the ability to
multiplex programs and provide for a reasonable level of safety
through static analysis
Quest-V: A Virtualized Multikernel for High-Confidence Systems
This paper outlines the design of `Quest-V', which is implemented as a
collection of separate kernels operating together as a distributed system on a
chip. Quest-V uses virtualization techniques to isolate kernels and prevent
local faults from affecting remote kernels. This leads to a high-confidence
multikernel approach, where failures of system subcomponents do not render the
entire system inoperable. A virtual machine monitor for each kernel keeps track
of shadow page table mappings that control immutable memory access
capabilities. This ensures a level of security and fault tolerance in
situations where a service in one kernel fails, or is corrupted by a malicious
attack. Communication is supported between kernels using shared memory regions
for message passing. Similarly, device driver data structures are shareable
between kernels to avoid the need for complex I/O virtualization, or
communication with a dedicated kernel responsible for I/O. In Quest-V, device
interrupts are delivered directly to a kernel, rather than via a monitor that
determines the destination. Apart from bootstrapping each kernel, handling
faults and managing shadow page tables, the monitors are not needed. This
differs from conventional virtual machine systems in which a central monitor,
or hypervisor, is responsible for scheduling and management of host resources
amongst a set of guest kernels. In this paper we show how Quest-V can implement
novel fault isolation and recovery techniques that are not possible with
conventional systems. We also show how the costs of using virtualization for
isolation of system services does not add undue overheads to the overall system
performance
Recommended from our members
Learning units-of-measure from scientific code
CamFort is our multi-purpose tool for lightweight analysis and verification of scientific Fortran code. One core feature provides units-of-measure verification (dimensional analysis) of programs, where users partially annotate programs with units-of-measure from which our tool checks consistency and infers any missing specifications. However, many users find it onerous to provide units-of-measure information for existing code, even in part. We have noted however that there are often many common patterns and clues about the intended units-of-measure contained within variable names, comments, and surrounding code context. In this work-in-progress paper, we describe how we are adapting our approach, leveraging machine-learning techniques to reconstruct units-of-measure information automatically thus saving programmer effort and increasing the likelihood of adoption
Mutation pattern analysis reveals polygenic mini-drivers associated with relapse after surgery in lung adenocarcinoma
The genomic lesions found in malignant tumours exhibit a striking degree of heterogeneity. Many tumours lack a known driver mutation, and their genetic basis is unclear. By mapping the somatic mutations identified in primary lung adenocarcinomas onto an independent coexpression network derived from normal tissue, we identify a critical gene network enriched for metastasis-associated genes. While individual genes within this module were rarely mutated, a significant accumulation of mutations within this geneset was predictive of relapse in lung cancer patients that have undergone surgery. Since it is the density of mutations within this module that is informative, rather than the status of any individual gene, these data are in keeping with a ‘mini-driver’ model of tumorigenesis in which multiple mutations, each with a weak effect, combine to form a polygenic driver with sufficient power to significantly alter cell behaviour and ultimately patient outcome. These polygenic mini-drivers therefore provide a means by which heterogeneous mutation patterns can generate the consistent hallmark changes in phenotype observed across tumours
Verifying Spatial Properties of Array Computations
Arrays computations are at the core of numerical modelling and computational science applications. However, low-level manipulation of array indices is a source of program error. Many practitioners are aware of the need to ensure program correctness, yet very few of the techniques from the programming research community are applied by scientists. We aim to change that by providing targetted lightweight verification techniques for scientific code. We focus on the all too common mistake of array offset errors as a generalisation of off-by-one errors. Firstly, we report on a code analysis study on eleven real-world computational science code base, identifying common idioms of array usage and their spatial properties. This provides much needed data on array programming idioms common in scientific code. From this data, we designed a lightweight declarative specification language capturing the majority of array access patterns via a small set of combinators. We detail a semantic model, and the design and implementation of a verification tool for our specification language, which both checks and infers specifications. We evaluate our tool on our corpus of scientific code and give verification case studies of bug fixes that are detected by our approach. We found roughly 80,000 targets for specification across roughly 1.4 million lines of code, showing that the vast majority of array computations read from arrays in a pattern with a simple, regular, static shape
Recommended from our members
DeepDish: multi-object tracking with an off-the-shelf Raspberry Pi.
When looking at in-building or urban settings, information about
the number of people present and the way they move through the
space is useful for helping designers to understand what they have
created, fire marshals to identify potential safety hazards, planners
to speculate about what is needed in the future, and the public to
have real data on which to base opinions about communal choices.
We propose a network of edge devices based on Raspberry Pi and
TensorFlow, which will ultimately push data via LoRaWAN to a
real-time data server. This network is being integrated into a Digital
Twin of a local site which includes several dozen buildings spread
over approximately 500,000 square metres. We share and discuss
issues regarding privacy, accuracy and performance
Supporting Software Sustainability with Lightweight Specifications
Lightweight specifications support software maintainability
by providing a way to verify that any changes to a code
base preserve certain program properties. We give two examples
of lightweight specifications for numerical code: units-of-measure
types which specify the physical units of numerical quantities in
a program; and stencil specifications which describe the pattern
of data access used in array computations. Not only can we
automatically verify that a program correctly implements these
requirements but specifications provide documentation for future
developers. Specifications can also be inferred and generated
automatically in some cases, further reducing programmer effort.
We finish by identifying future potential specification techniques
to ease the maintenance and comprehension of scientific code
BRCA2 variants and cardiovascular disease in a multi-ethnic study.
BACKGROUND: Germline mutations of BRCA1/2 are associated with hereditary breast and ovarian cancer. Recent data suggests excess mortality in mutation carriers beyond that conferred by neoplasia, and recent in vivo and in vitro studies suggest a modulatory role for BRCA proteins in endothelial and cardiomyocyte function. We therefore tested the association of BRCA2 variants with clinical cardiovascular disease (CVD). METHODS: Using data from 1,170 individuals included in two multi-ethnic population-based studies (SHARE and SHARE-AP), the association between BRCA2 variants and CVD was evaluated. 15 SNPs in BRCA2 with minor allele frequencies (MAF) > 0.01 had been previously genotyped using the cardiovascular gene-centric 50 k SNP array. 115 individuals (9.8%) reported a CVD event, defined as myocardial infarction (MI), angina, silent MI, stroke, and angioplasty or coronary artery bypass surgery. Analyses were adjusted for age and sex. The SNPs rs11571836 and rs1799943 were subsequently genotyped using the MassARRAY platform in 1,045 cases of incident MI and 1,135 controls from the South Asian subset of an international case-control study of acute MI (INTERHEART), and rs11571836 was imputed in 4,686 cases and 4500 controls from the Pakistan Risk of Myocardial Infarction Study (PROMIS). RESULTS: Two BRCA2 SNPs, rs11571836 and rs1799943, both located in untranslated regions, were associated with lower risk of CVD (OR 0.47 p = 0.01 and OR 0.56 p = 0.03 respectively) in the SHARE studies. Analysis by specific ethnicities demonstrated an association with CVD for both SNPs in Aboriginal People, and for rs11571836 only in South Asians. No association was observed in the European and Chinese subgroups. A non-significant trend towards an association between rs11571836 and lower risk of MI was observed in South Asians from INTERHEART [OR = 0.87 (95% CI: 0.75-1.01) p = 0.068], but was not evident in PROMIS [OR = 0.96 (95% CI: 0.90-1.03) p = 0.230]. Meta-analysis of both case-control studies resulted in a combined OR of 0.94 (95% CI: 0.89-1.004, p = 0.06). CONCLUSIONS: Although there was an association between two SNPs in BRCA2 and CVD in a multi-ethnic population, these results were not replicated in two South Asian case-control studies of incident MI. Future studies exploring the association between BRCA variants and cardiovascular disorders are needed to clarify the role, if any, for BRCA variants in CVD pathogenesis.RIGHTS : This article is licensed under the BioMed Central licence at http://www.biomedcentral.com/about/license which is similar to the 'Creative Commons Attribution Licence'. In brief you may : copy, distribute, and display the work; make derivative works; or make commercial use of the work - under the following conditions: the original author must be given credit; for any reuse or distribution, it must be made clear to others what the license terms of this work are
- …